/**
 * 表情的工具类，主要用于装载表情和将String转换为富文本
 */
export default class {
  /**
   * 是否装载表情，默认不装载
   * @param  {Boolean} load 是否装载
   */
  constructor(load){
    this._imgBaseUrl = 'https://dl.app.gtja.com/nrng/shareimages/emoji/';
    this._keys = '吓|吻|哭|唉|困|土豪|崇拜|开心|怒|悟空|钱多|敬礼|牛人牛股|福|害羞|花|赞|跑';
    this._emojiStrs = ['吓','吻','哭','唉', '困', '土豪', '崇拜', '开心', '怒', '悟空', '钱多', '敬礼', '牛人牛股', '福', '害羞', '花', '赞', '跑'];
    this._emojis = [];
    if(load)this.wrapEmoji();
  }

  wrapEmoji(){
    for (var i = 0; i < this._emojiStrs.length; i++) {
      let item = {
        type: 1,
        text: '['+ this._emojiStrs[i] +']',
        path: 'https://dl.app.gtja.com/nrng/shareimages/emoji/' + i + '.gif'
      };
      this._emojis.push(item);
    }
  }

  getEmojis(){
    return this._emojis;
  }

  /**
   * 将string转换为包含图片的富文本
   * @param  {[type]} str [description]
   * @return {[type]}     [description]
   */
  str2Emoji(str){
    var regex = new RegExp('\\[('+ this._keys + ')\\]', 'g');
    return str.replace(regex, args => {
      let key = args.substring(1, args.length - 1);
      let index;
      for(let i = 0; i< this._emojiStrs.length; i++){
        if(this._emojiStrs[i] == key){
          return '<img class="emoji_item" src="https://dl.app.gtja.com/nrng/shareimages/emoji/'+ i +'.gif" alt="['+ key + '] data-emoji="['+ key +']" />';
        }
      }
    });
  }
}